home *** CD-ROM | disk | FTP | other *** search
- #!/bin/bash
-
- # Script to compile a resource file for a DLL in the same way that
- # libtool would, if it knew about .rc files.
-
- # This kinda sucks, but the alternative would be to teach autoconf,
- # automake, and libtool about compiling .rc files. That would be
- # doable, but waiting for those changes to propagate to official
- # versions of those tools would take some time.
-
- # The command line arguments are:
- # $1: the name of the .rc file to compile if it exists
- # $2: the name of the resource libtool object file to produce
-
- rcfile=$1
- lo=$2
- case "$lo" in
- *.lo)
- resfile=.libs/`basename $lo .lo`.o
- ;;
- *)
- echo libtool object name should end with .lo
- exit 1
- ;;
- esac
- d=`dirname $0`
-
- # Create .libs if not there already
- [ ! -d .libs ] && mkdir .libs
-
- # Super-ugly hack: libtool can work in two ways on Win32: Either it
- # uses .lo files which are the real object files in "this" directory,
- # or it creates .o files in the .libs subdirectory, and the .lo file
- # is a small text file. We try to deduce which case this is by
- # checking if there are any .o files in .libs. This requires that the
- # resource file gets built last in the Makefile.
-
- o_files_in_dotlibs=`echo .libs/*.o`
- case "$o_files_in_dotlibs" in
- .libs/\*.o)
- use_script=false
- ;;
- *) use_script=true
- ;;
- esac
-
- # Try to compile resource file
- $d/compile-resource $rcfile $resfile && {
- if [ $use_script = true ]; then
- # Handcraft a libtool object
- # libtool checks for a second line matching "Generated by .* libtool"!
- (echo "# $lo"
- echo "# Generated by lt-compile-resource, compatible with libtool"
- echo "pic_object=$resfile"
- echo "non_pic_object=none") >$lo
- else
- mv $resfile $lo
- fi
- # Success
- exit 0
- }
-
- # If unsuccessful (no .rc file, or some error in it) return failure
-
- exit 1
-